草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - 用 fork() 模拟线程

关于使用“fork()函数”和“共享内存”block模拟线程,你有什么想法......这可能吗?对于一个程序,这样做多少合理?(我的意思是,它会运作良好吗...?) 最佳答案 首先,不要mixathreadandfork().fork给你一个全新的进程,它是当前进程的拷贝,具有相同的代码段。随着内存镜像的变化(通常这是由于两个进程的不同行为),您可以分离内存镜像,但可执行代码保持不变。任务不共享内存,除非它们使用一些进程间通信(IPC)原语。相比之下,线程是同一任务的另一个执行线程。一个任务可以有多个线程,任务内存对象在线程之间共享

c++ - 用于创建业余操作系统的最受尊敬的语言和免费编译器?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。希望这是一个很好的快速回答问题。哪种语言被认为是从头开始编写业余操作系统的实际语言,它还支持创建512字节引导扇区?我假设纯C是答案,尽管我脑子里有一个模糊的概念,即也可以使用C++。鉴于时间的流逝,你们中的任何人对替代但可能更高级的语言有任何看法吗?其他人会强烈推荐普通的老式汇编器吗?根据您的回答,您会推荐哪种免费(甚至可能是开源)编译器来将源代码编译

c++ - 有没有人安装了有效的 GMP + MINGW?

我花了很多天尝试在我的MINGWWindows安装上安装GMP库。我完成了这两个安装过程数十次,按照互联网上的任何一个指南进行操作,但我无法让事情正常进行。所以,我在这里不顾一切地请别人帮我解决这个问题:有没有人有一个工作的mingw(32位)安装成功地构建并处理了GMP?有人可以压缩它并以某种方式发送给我吗?喜欢将它上传到mediafire/megaupload并分享链接吗?我知道这不是很优雅,但我真的很绝望。我只需要在MINGW上安装GMP,可能需要编译C++源代码以便我可以直接使用运算符重载,但C版本也可以。请有人帮忙,因为这个该死的图书馆我无法完成我的工作再次感谢马特奥

c++ - libpng png_set_add_alpha | png_set_filler 错误 : sequential row overflow

我正在尝试使用C读取PNG文件以用于OpenCL。OpenCL不支持24位RGB图像,因此我需要将数据从RGB扩展到RGBA。我使用的PNG都是24位的,因此可以避免头痛。我曾尝试使用png_set_filler和png_set_add_alpha,我认为它们大致相同来解决问题,但它们都会导致此错误:libpngerror:sequentialrowoverflow这里是完整的函数:intLoadPNG24(unsignedchar**pixelBuffer,constchar*filename,unsignedint*width,unsignedint*height){png_byt

c++ - 用于 `UINT16` 二维数组的 C/C++ 快速中值滤波器

有人知道c++中16位(unsignedshort)数组的快速中值滤波算法吗?http://nomis80.org/ctmf.html这个看起来很有前途,但它似乎只适用于字节数组。有谁知道如何修改它以使用短裤或替代算法? 最佳答案 论文中的技术依赖于为8位像素channel创建具有256个bin的直方图。转换为每channel16位将需要具有65536个bin的直方图,并且图像的每一列都需要一个直方图。将内存要求增加256使该算法总体上效率较低,但对于今天的硬件来说仍然可行。使用他们提出的将直方图分为粗略和精细部分的优化应该会进一步

c++ - 检查 union 实例之间相等性的正确方法是什么?

我有一个多线程应用程序,它将数据存储为以下union的实例数组unionunMember{floatfData;unsignedintuiData;};存储此数组的对象知道union中的数据是什么类型,因此在检索正确类型时我不会遇到UB问题。然而,在程序的其他部分,我需要测试这些union的两个实例之间的相等性,并且在这部分代码中,真正的内部数据类型是未知的。这样做的结果是我无法使用这种方法测试union的相等性unMemberun1;unMemberun2;if(un1==un2){//dostuff}当我遇到编译器错误时。因此,我只是比较union的float部分if(un1.fD

c++ - Opencv 错误 : no GPU support (library is compiled without CUDA support)

我正在尝试使用CUDA在GPU上使用opencv处理一些图像处理任务。我正在使用ubuntu。我毫无问题地设置了我的两个产品Opencv和Cuda,我确信这一点。但是,当我尝试在eclipse中运行sampleCOde时,出现错误:OpenCV错误:在mallocPitch中没有GPU支持(库在没有CUDA支持的情况下编译),文件/home/muad/Source/OpenCV-2.4.2/modules/core/src/gpumat.cpp,第749行我重做了我的opencv,但我还是明白了。 最佳答案 如文档中所述,您必须使用

c++ - 强制 Clang 链接到 C++ 运行时

我有一个包含C和C++源代码混合的项目。它目前在OSX上使用GCC构建。该项目有定制的构建脚本,调用gcc命令来编译C和C++源代码,并单独调用链接器。我现在正尝试使用Clang构建它。调用clang会正确编译源文件;它区分.c和.cpp源文件,并针对每种情况编译适当的语言。不过,我在链接时遇到了问题。当链接器作为clang调用时,C++运行时库未链接进来,导致由于缺少符号而导致构建错误。当我将clang++设置为构建工具时,我可以成功链接,但这会导致编译时错误和警告;它真的不喜欢用C++编译器编译C源代码。clang:warning:treating'c'inputas'c++'wh

c++ - 共享库中是否应该避免使用静态成员函数?

在阅读Oliveira和Stewart合着的《WritingScientificSoftware》一书时,我看到了一段有趣的文章:"SharedvariablesaredangerousandshouldbeavoidedinsharedlibrariesSoifyouarewritingasharedordynamicallylinkedlibrary,avoidstaticorsavedlocalvariablesandavoidglobalvariables."(page55)但是static成员函数呢?这些在共享库中是否同样危险?我也应该避免这些吗?为什么/为什么不?

c++ - sockaddr_storage 大小为 128 字节

我只是想知道为什么sockaddr_storage是128字节。我知道它必须至少是IPv6的28个字节,但是比sockaddr_in6多100个字节似乎有点过分。这只是为了将来证明存储结构,还是有理由现在需要它? 最佳答案 您将在rfc2553的§3.10中找到问题的答案。在这个SOpost.原因是至少应保存ip6和其他协议(protocol)数据,并64位对齐以提高效率。来自RFC的相关部分:OnesimpleadditiontothesocketsAPIthatcanhelpapplicationwritersisthe"str